import threading

from socket import *
from utils import *



#1.创建连接套接字
server = socket(family=AF_INET, type=SOCK_STREAM)  #ipv4 ， TCP

#绑定本地地址
addr = ("", 8888)
server.bind(addr)

print("本地服务器已经开启,端口号: ", 8888)

#监听
server.listen(128)

#等待用户连接
print("等待用户连接")


def thread_deal_data(new_st, client_addr):
    #等待接收数据
    print("等待接收数据")
    while True:
        data = new_st.recv(1024)
        if data:
            print(f"{client_addr}:", try_code(data))
            #回复数据
            new_st.send("数据已收到\n".encode("utf-8"))
        else:
            print(f"{client_addr}连接已断开。。。")
            new_st.close()
            break


#接收客户端连接，同时新建一个通信套接字
while True:
    new_st, client_addr = server.accept()
    print(client_addr , "连接了服务器")

    #开线程，设置为守护线程
    t = threading.Thread(target=thread_deal_data, args=(new_st, client_addr), daemon=True)    
    t.start()



#关闭套接字
server.close()
